home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGNG_C / CSUBR.LZH / SHOWCH.C < prev    next >
Text File  |  1985-11-19  |  1KB  |  42 lines

  1. #define EOS '\0'
  2. #define     REVVID  0x70    /* reverse video attribute */
  3. #define     NORM    0x07    /* normal video attribute */
  4.  
  5. int
  6. showch(c)
  7. char c;
  8. {
  9.     static char *cntlchr[] = {"NUL","SOH","STX","ETX","EOT","ENQ","ACK","BEL",
  10.         "BS ","HT ","LF ","VT ","FF ","CR ","SO ","SI ","DLE",
  11.         "DC1","DC2","DC3","DC4","NAK","SYN","ETB","CAN","EM ",
  12.         "SUB","ESC","FS ","GS ","RS ","US "};
  13.  
  14.     int ret, strbuf[4];
  15.     ret = 0;
  16.  
  17.     if ((c >= 0) && (c <= 31)) {   /* HANDLE CONTROL CHARS */
  18.         ret = 3;   /* number of positions used */
  19.         conout(cntlchr[(int)c],REVVID);
  20.     }
  21.     else if ((c >= ' ') && (c <= '~')) { /* HANDLE NORMAL CHARS */
  22.         ret = 1;  /* number of positions used */
  23.         strbuf[0] = c;        /* display as normal video */
  24.         strbuf[1] = EOS;
  25.         conout(strbuf,NORM);
  26.     }
  27.     else if (c == 127) {        /* HANDLE 0X7F (DEL) */
  28.         ret = 3;   /* number of positions used */
  29.         conout("DEL",REVVID);
  30.     }
  31.     else {                /* HANDLE FUNNY CHARS */
  32.         conout("\\",REVVID);
  33.         itoa(c,strbuf);
  34.         conout(strbuf,REVVID);
  35.         conout("\\",REVVID);
  36.         ret = strlen(strbuf) + 2;  /* number of positions used */
  37.     }
  38.     conout(" ",NORM);         /* separate displays */
  39.     return(++ret);
  40. }
  41.  
  42.